package happy.town.threeBook;


import java.util.ArrayList;
import java.util.Scanner;

/**
 * @BelongsProject: threeBook
 * @BelongsPackage: a.happy.town.threeBook
 * @Author: ByHappy  (Email:1300985301@qq.com)
 * @CreateTime: 2023-07-27 23:08
 * @Description: 增删改查  ————————jdbc&sql版
 * @Version: 1.0
 **/
public class BookArr {

    /**
     * @param
     * @author ByHappy
     * @date 23:17 2023/7/27
     **/
    public static void HappyBookhouse() {

        while (true) {
            // 打印菜单
            System.out.println("---------欢迎来到高兴书屋---------");
            System.out.println("1.【高兴书屋】查询———————根据书籍编号查询书籍+++++");
            System.out.println("2.【高兴书屋】添加———————书籍+++++++++++++++++++");
            System.out.println("3.【高兴书屋】查询———————所有书籍++++++++++++++++");
            System.out.println("4.【高兴书屋】删除———————根据书籍编号删除书籍+++++");
            System.out.println("5.【高兴书屋】退出———————退出应用++++++++++++++++");

            // 键盘录入 scanner
            Scanner sc = new Scanner(System.in);
            // 设置键盘录入序号标记
            int choice = 0;
            try {
                System.out.println("请输入您想输入的功能序号");
                choice = sc.nextInt();
                // 判断输入范围是否小于0大于5
                if (choice <= 0 || choice > 5) {
                    // 指令不在范围返回友好提示
                    System.out.println("您的输入指令错误，请重新输入...");
                }

            } catch (Exception e) {
                // 因为输入的要求是int，也有可能是char,所以为了代码健壮性，catch一下
                System.out.println("您的输入指令不规范，请重新输入...");
                sc = new Scanner(System.in);

            }

            // 根据choice录入序号进行判断
            //  查编号
            if (choice == 1) {
                System.out.println("【高兴书屋】>>>>>>1.查询——根据书籍编号查询书籍————请录入查询书籍编号");
                // 键盘录入书籍编号
                int bId = sc.nextInt();
                // 调用——根据编号查询对应的书籍——方法
                BookDTO result = BookMD.findBookByBno(bId);
                // 通过result的结果判定书籍是否查询的到：
                if (result == null) { // 书籍不存在
                    System.out.println("您想要查询的书籍不存在");
                } else { // 书籍存在
                    System.out.println("当前查询到一本书籍：《" + result.getBName() + "》");
                }

            }

            //  添加
            if (choice == 2) {
                System.out.println("【高兴书屋】>>>>>>2.添加——书籍");
                // 键盘录入书信息
                System.out.println("请录入书籍编号：");
                int bId = sc.nextInt();
                System.out.println("请录入书籍名字：");
                String bName = sc.next();
                System.out.println("请录入书籍作者：");
                String bAuthor = sc.next();
                System.out.println("请录入书籍价格：");
                double bPrice = sc.nextDouble();
                // 每上新一本书籍，就要创建一本新的书籍对象
                BookDTO result = new BookDTO();
                result.setBId(bId);
                result.setBName(bName);
                result.setBAuthor(bAuthor);
                result.setBPrice(bPrice);
                // 调用添加书籍方法
                int book = BookMD.insertBook(result);
                if (book != 0) {
                    System.out.println("书籍添加成功");
                } else {
                    System.out.println("书籍添加失败");
                }
            }

            //  查询所有
            if (choice == 3) {
                System.out.println("【高兴书屋】>>>>>>3.查询——所有书籍");
                // 调用——查询所有书籍——方法
                ArrayList threeBooks = BookMD.findBooks();
                if (threeBooks.size() == 0) {
                    System.out.println("没有书籍信息！");
                } else {
                    // 遍历书籍并输出
                    for (int i = 0; i < threeBooks.size(); i++) {
                        BookDTO result = (BookDTO) threeBooks.get(i);
                        System.out.println("书籍编号：" + result.getBId() + "--书籍名称：" + result.getBName() + "--书籍作者：" + result.getBAuthor() + "--书籍价格：" + result.getBPrice());
                    }

                }


            }

            //  删除
            if (choice == 4) {
                System.out.println("【高兴书屋】>>>>>>4.删除——根据书籍编号删除书籍——请录入删除的书籍编号");
                // 键盘录入书籍编号
                int bId = sc.nextInt();
                // 调用——根据书籍编号删除书籍——方法
                int result = BookMD.deleteBook(bId);
                // 通过result的结果判定书籍是否存在：
                if (result != 0) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除失败");
                }
            }


            //  退出指令
            if (choice == 5) {
                System.out.println("【高兴书屋】>>>>>>5.退出——退出应用");
                System.out.println("感谢使用，再见！！！");
                System.exit(0);
            }


        }
    }
}
